package br.com.loja.produto;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.classic.Session;

public class ProdutoDAOHibernate implements ProdutoDAO{
	
	private Session sessao;

	public void salvar(Produto produto) {
		this.sessao.save(produto);	
	}

	public void alterar(Produto produto) {
		this.sessao.update(produto);
	}

	public void excluir(Produto produto) {
		this.sessao.delete(produto);		
	}
	
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@SuppressWarnings("unchecked")
	public List<Produto> listar() {
		Criteria lista = sessao.createCriteria(Produto.class);
		return lista.list();
	}

	@Override
	public Produto pesquisar(String string) {
		Query consultadescricao = this.sessao.createQuery("Select Produto c Where c.descricao like:descricao");
		consultadescricao.setString("descricao", "%"+ string + "%");
		return (Produto) consultadescricao.uniqueResult();
	}

}
